//! 服务器模式trait定义

use async_trait::async_trait;
use std::io;
use crate::storage::RedisServerMode;

/// 服务器模式trait
#[async_trait]
pub trait ServerMode {
    /// 启动服务器
    async fn start(&mut self) -> io::Result<()>;
    
    /// 停止服务器
    async fn stop(&mut self) -> io::Result<()>;
    
    /// 获取服务器状态
    fn is_running(&self) -> bool;
    
    /// 获取服务器运行模式
    fn get_mode(&self) -> RedisServerMode;
}